1 GOTO910 2 PRINT"x[169][141][169][141]X` [234][255][169][255][133][145]L4[234]x[169]1[141][169][234][141]X` 3 [153]"xSTEPGINPUTSTOPSTEPINPUTONX` (null)(null)STEP(null)INPUTLISTLX(null)xSTEPUINPUTSTOPSTEP(null)INPUTONX` 4 PRINT"xhhh[170]h[168]hhhhhhh[152]H[138]HX` 5 [153]"hhhhhhh` 6 PRINT"[160][255][200][132][251][169][216][133][252] [241][183][138][162][160][255][200][145][251][136][208][251][230][252][202][208][246]` 7 [153]"NEWCLOSE(null)LEFT$>(null)ON(null)LET(null)(null)(null)(null)(null)(null)MID$(null)(null)` 35 IFUW=0THENSYSUU,15 40 POKEUC,0:POKEUN,0:UR$="":UI$="":IFUL=0THENUL=39 45 GETUI$:IFUI$=""THEN45 50 UA=ASC(UI$):UR=LEN(UR$):IFUA=13ANDUR>0THENPOKEUC,1:PRINT" [157]";:GOTO75 55 IFUA=20THENON-(UR=0)GOTO45:UR$=LEFT$(UR$,UR-1):PRINT"[157] [157][157]";:GOTO45 60 IFUR=ULTHEN45 65 GOSUB95:UR$=UR$+UI$:PRINTUI$;:GOTO45 75 FORUI=URTO1STEP-1:IFMID$(UR$,UI,1)=" "THENNEXT 80 UR$=LEFT$(UR$,UI):PRINT:RETURN 95 IFLEN(US$)=0THEN110 100 FORUI=1TOLEN(US$):IFUI$<>MID$(US$,UI,1)THENNEXT:UI$="" 105 RETURN 110 IFUA=46THENRETURN 115 IFUA=32ANDUR<>0THENRETURN 120 IFUA>47ANDUA<58THENRETURN 125 IFUA>64ANDUA<91THENRETURN 130 IFUA<193ORUA>218THENUI$="":RETURN 135 IFPEEK(UT)=UU%THENUI$=CHR$(UA-128) 140 RETURN 155 UZ=0:US$=UJ$:UG$=UK$:UT$=UL$:UP=UJ:UL=UK:PRINT"[147]";:POKEUY,6:POKEUX,6 160 POKEUT,UV%:POKE251,0:POKE252,UF:POKE253,0:POKE254,US/256:SYSUV:SYSUU,15 165 POKEU1,U1%:POKEU2,U2%:POKEU3,U3%-1:POKEU4,U4%:GOTO35 299 : 300 REM DERIVED FROM COMMODORE ONTARIO EDUCATIONAL SOFTWARE PROJECT 1983 305 REM PROJECT DIRECTOR: FRANK WINTER 310 REM PROGRAM NAME: WORD SEARCH 315 REM WRITTEN BY: CREATIVE COMPUTING 320 REM REVISED BY: KARIM NAZARALI 325 REM UPDATED BY: BILL CUMBERLAND 380 PRINT"[147] [208]RESS  [210] [146] TO REPEAT INSTRUCTIONS 382 [153]" (null)RESS  (null) WAIT TO CREATE PUZZLE 384 GETR$:IFR$<>"R"ANDR$<>"P"ANDR$<>"[210]"ANDR$<>"[208]"THEN384 386 IFR$="[210]"GOTO400 388 IF$="R"GOTO400 390 GOTO 813 399 : 400 PRINT"[147]":POKEUT,UL%:POKEUY,0:POKEUX,0:POKE646,3 402 PRINT"  [201][206][211][212][210][213][195][212][201][207][206][211] [146]" 404 PRINT" [212]HIS PROGRAM CAN BE USED TO CREATE WORD SEARCH PUZZLES. 410 [153]" (null)HE PROGRAM TAKES A SET OF INPUT" 412 [153]" STRINGS, PURGES ALL NON-ALPHABETIC" 414 [153]" CHARACTERS OUT OF THEM, AND FITS THEM 416 PRINT" INTO A PUZZLE." 418 PRINT" [201]N THE COURSE OF MAKING THE PUZZLE," 420 PRINT" THE COMPUTER MAY FIND THAT IT CAN'T" 422 PRINT" PUT A PARTICULAR WORD ANYWHERE AND" 424 PRINT" SO IT WILL ASK YOU IF IT SHOULD START THE WHOLE PUZZLE OVER." 426 PRINT" [201]F YOU DON'T WANT TO START OVER, TYPE IN 'NO'." 430 GOSUB820 432 PRINT"[147] [212]HIS WILL THROW AWAY THAT PARTICULAR WORD. 434 [153]" RIGHT$F THIS PERSISTS EITHER TRY" 436 [153]" GIVING FEWER WORDS OR LARGER PUZZLE DIMENSIONS." 438 [153]" RIGHT$F THIS SITUATION ARISES, YOU MAY" 440 [153]" ALSO TYPE IN 'M' FOR MANUAL." 442 [153]" (null)HIS WILL ALLOW YOU TO TRY TO FIT" 444 [153]" THE WORD INTO THE PUZZLE YOURSELF." 446 [141]820 448 [153]"LOAD (null)HEN DOING IT MANUALLY, THE PROGRAM" 450 [153]" WILL SHOW YOU THE PUZZLE IT HAS MADE UP SO FAR. 452 PRINT" [198]IRST IT WILL ASK YOU FOR A LINE 454 [153]" NUMBER AND THEN A COLUMN NUMBER AT WHICH TO START THE WORD. 456 PRINT" [212]HE LINE GOES IN THE HORIZONTAL" 458 PRINT" DIRECTIOM WHILE THE COLUMNS RUN VERTICALLY." 460 PRINT" [206]EXT, IT WILL ASK FOR THE DIRECTION " 462 PRINT" IN WHICH YOU WANT THE WORD TO GO." 464 GOSUB820 466 PRINT"[147] [198]OR THE DIRECTION TYPE IN A NUMBER" 468 PRINT" BETWEEN 1 AND 9 THAT CORRESPONDS TO THE FOLLOWING DIRECTIONS>>>" 470 GOSUB820:PRINT"[147] [206][213][205][194][197][210] [196][201][210][197][195][212][201][207][206]" 472 PRINT" 1 [196]IAGONALLY [196]OWN [204]EFT":PRINT" 2 [196]OWN" 474 PRINT" 3 [196]IAGONALLY [196]OWN RIGHT":PRINT" 4 [204]EFT" 476 PRINT" 5 [195]ANNOT [198]IT-[197]XIT ":PRINT" 6 [210]IGHT" 478 PRINT" 7 [196]IAGONALLY [213]P [204]EFT ":PRINT" 8 [213]P " 480 PRINT" 9 [196]IAGONALLY [213]P [210]IGHT " 482 GOSUB820 484 PRINT"[147] [201]N THE COURSE OF CREATING THE PUZZLE" 486 PRINT" THE COMPUTER OFTEN TAKES A LONG TIME." 488 PRINT" [208]LEASE BE PATIENT! [196]O NOT ASSUME " 490 PRINT" THAT SOMETHING IS WRONG." 492 PRINT" [198]OR EXAMPLE: A PUZZLE WITH DIMENSIONS" 494 PRINT" 40 BY 50 CONTAINING 67 WORDS WILL TAKE" 496 PRINT" APPROXIMATELY TEN MINUTES BEFORE IT IS" 498 PRINT" READY TO PRINT OUT THE PUZZLE." 499 GOSUB830:GOTO380 500 REM SOUND 505 SS=54272:FOREE=SSTOSS+28:POKEEE,0:NEXT 510 POKE54296,8:POKE54277,42:POKE54278,250 515 POKE54276,23:POKE54273,23:POKE54272,191 520 FORTM=1TO30:NEXT:POKE54276,32:FORTM=1TO50:NEXT 525 POKE54296,0:RETURN 590 FORTM=1TO500:NEXT:RETURN 591 FORTM=1TO1000:NEXT:RETURN 592 FORTM=1TO2000:NEXT:RETURN 595 FORTM=1TO5000:NEXT:RETURN 800 PRINT"[147]";:POKEUT,UU%:POKEUY,0:POKEUX,0:POKE646,7 801 PRINT" A TPUG EDUCATIONAL PROGRAM ":GOSUB591 802 PRINT" [146]"; 803 PRINT" [146]"; 804 PRINT" [146]"; 805 PRINT" [146]"; 806 PRINT" WORD SEARCH [146]"; 807 PRINT" [146]"; 808 PRINT"[158] [146]"; 809 PRINT" [146]":GOSUB591:GOSUB500 810 PRINT" INSTRUCTIONS? Y/N 811 [161]R$:[139]R$[179][177]"Y"[175]R$[179][177]"N"[167]811 812 [139]R$[178]"Y"[167]400 813 [153]"LOAD AND AWAY WE GO....... ":[141]591:[141]500:[141]591 814 [137]1000 820 [141]591:[141]500 822 [151]UN,0:[153][200](UD$,24);" (null)RESS (null)(null)ATNLENVALCLOSEPEEKATN(null) TO CONTINUE WAIT" 824 [161]UI$:[139]UI$[179][177]" "[167]824 826 [142] 830 [141]591:[141]500 835 [151]UN,0:[153][200](UD$,24);"PRESS SPACE BAR TO CONTINUEWAIT" 840 [161]UI$:[139]UI$[179][177]" "[167]840 845 [142] 850 UP[178]UP[170]1:[153]"LOAD"[200](UT$[170]UP$,21);[201](UP$[170]UG$[170][196](UP),18) 855 [153]" --------------------------------------" 860 [139]UH[178]0[167][153][200](UD$,24);[200](UP$,7);"ANSWER, THEN PRESS RETURNWAIT 865 UH=0:PRINT"":RETURN 875 PRINTLEFT$(UD$,24);" ONE MOMENT PLEASE... ":RETURN 900 US=1024:U1=209:U2=210:U3=211:U4=214:UC=204:UB=2048:UX=53280:UD=2064 902 UT=53272:UU%=21:UL%=23:UP%=2151:UN=198:UY=53281:UU=2199:UE=2087 904 UC$=CHR$(155):UV=1214:UF=196:UV=2238 905 UD$="":UP$=" " 909 RETURN 910 GOSUB900:PRINT"[147] " 920 GOTO800 1000 PRINT"[147]"UC$;:RESTORE:POKEUY,0:POKEUX,0 1010 TH=0:FG=0 1020 CLR: GOSUB 900 1025 AP$="-.ABCDEFGHIJKLMNOPQRSTUVWXYZ" 1030 BL$=" " 1040 H$=" AEIOUYSRTLMNPBCDFGHJKVWQXZ!#$%'&\():,;?1230456789.-=+*/@" 1180 DEFFNA(Z)=INT(RND(1)*Z+1) 1185 GOSUB 2060 1186 GOTO 1200 1190 PRINT"[147] HOW MANY COLUMNS DOES YOUR PRINTER HAVE? (80/40) "; 1195 US$="0123456789":UL=3:GOSUB 35:TW=VAL(UR$):RETURN 1200 PRINT" DO YOU WANT A SOLUTION PRINTOUT? (Y/N) "; 1205 US$="YN":UL=1:GOSUB 35:X$=UR$ 1210 PRINT" THE PUZZLE WIDTH WILL BE - "; 1215 US$="0123456789":UL=2:GOSUB 35:W=VAL(UR$):MD=W 1220 IFW*2<=TWTHEN1240 1230 PRINT" THAT WILL NOT FIT IN"TW"COLUMNS":GOSUB830:GOTO1210 1240 IFW<1THEN1210 1250 PRINT" THE PUZZLE LENGTH WILL BE - "; 1255 US$="0123456789":UL=2:GOSUB 35:L=VAL(UR$):IF L>W THEN MD=L 1260 IFL<1THEN1250 1270 PRINT" THE NUMBER OF WORDS IN THE PUZZLE WILL BE (200 MAX) - "; 1273 US$="0123456789":UL=3:GOSUB 35:M=VAL(UR$) 1275 IF M>200 THEN GOSUB850:GOTO1270 1280 IFM>=2THEN1310 1290 PRINT" SORRY! THERE MUST BE AT LEAST 2 WORDS":GOSUB835:GOSUB850:GOTO1270 1310 DIMA$(L,W),W$(M+10) 1320 DIM W(M,3),DXY(8,2),DD(28) 1330 PRINT" NOW ENTER A HEADING THAT WILL BE PRINTED OVER THE PUZZLE:" 1340 PRINT" (" MID$(STR$(TW),2)" CHARACTERS MAXIMUM) " 1345 PRINT" "; 1350 US$=H$:UL=VAL(MID$(STR$(TW),2)):GOSUB 35:XY$=UR$ 1360 PRINT"[147] OK. ENTER A WORD AT EACH QUESTION MARK. 1370 [153]" TO REDO THE PREVIOUS WORD, TYPE A HYPHEN (-). 1380 PRINT" WHEN YOU HAVE EXHAUSTED YOUR SUPPLY 1381 [153]" OF WORDS, TYPE A PERIOD(.).":[141]830:[153]"LOAD" 1390 [129]I[178]1[164]M 1392 FG[178]FG[170]1:[139]FG[178][177]15[167]FG[178]0:[153]"LOAD" 1400 [153]I;"CMD. ? "; 1405 US$[178]AP$:UL[178]MD:[141] 35:T$[178]UR$ 1406 [139] T$[178]"-" [167] I[178]I[171]1:[153]"REDO "W$(I)"...":FG[178]FG[170]1:[137] 1392 1410 [139]T$[178]"."[167]M[178]I[171]1:[137]1600 1420 [139]T$[178]"SIN"[167][153]"INPUT ERROR...REDO":FG[178]G[170]1:[137]1392 1430 J[178]1 1440 TE$[178][202](T$,J,1):[139]TE$[177][178]"ATN"[175]TE$[179][178]"(null)"[167]1510 1450 [139]TE$[179]"A"[176]TE$[177]"Z"[167]1470 1460 [137]1510:[143] REPLACEMENT CODE OMITTED 1470 [139]TE$[178]T$[167]T$[178]"SIN":[137]1420 1480 [139]J[178][195](T$)[167]T$[178][200](T$,J[171]1):[137]1520 1490 [139]J[178]1[167]T$[178][201](T$,[195](T$)[171]1):J[178]J[171]1:[137]1510 1500 T$[178][200](T$,J[171]1)[170][201](T$,[195](T$)[171]J):J[178]J[171]1 1510 J[178]J[170]1:[139]J[179][178][195](T$)[167]1440 1530 [139][195](T$)[179][178]MD[167]1560 1540 [153]"THAT'S TOO LONG, I'M AFRAID." 1550 [153]"TRY ANOTHER ONE...":FG[178]FG[170]2:[137]1392 1560 [129]IZ[178]1[164]I[171]1:[139]W$(IZ)[179][177]T$[167][130]:[137]1580 1570 [153]"YOU ENTERED THAT ONE ALREADY.TRY AGAIN":FG[178]FG[170]1:[137]1392 1580 W$(I)[178]T$ 1585 [139] XZ[178]1 [167] 1593 1590 [130]I 1593 XZ[178]0 1595 [153]"DO YOU WISH TO CORRECT LAST WORD? ";:US$[178]"YN":UL[178]1:[141]35 1597 [139] UR$[178]"Y" [167] T$[178]"-":XZ[178]1:[137]1406 1600 [153]" THAT'S IT..."M"WORDS 1605 GOSUB 830 1610 PRINT"[147] NOW LET ME PONDER THIS........" 1620 FORI=1TOM-1 1630 FORJ=I+1TOM 1640 IFLEN(W$(I))15THENPRINT"[147]" 1720 FORI=1TOM:PRINTI,W$(I) 1730 LN=LEN(W$(I)) 1740 NT=0 1750 SD=DD(FNA(28)) 1760 SX=FNA(W):X1=SX+(LN-1)*DXY(SD,1):IFX1<1ORX1>WTHEN1750 1770 SY=FNA(L):X1=SY+(LN-1)*DXY(SD,2):IFX1<1ORX1>LTHEN1750 1780 NT=NT+1:IFNT<=W*L*2THEN1860 1790 PRINT"[147] COULDN'T FIT '"W$(I)"'":PRINT" IN THE PUZZLE." 1800 PRINT" DO YOU WANT ME TO START OVER? " 1803 PRINT" ACCEPTABLE RESPONSES ARE Y[146]ES, N[146]O":PRINT" AND M[146]ANUAL FIT "; 1805 US$="YNM":UL=1:GOSUB 35:A$=UR$ 1806 TH=TH+3 1808 GOSUB850:TH=0 1810 IFLEFT$(A$,1)="Y"THENFORI=1TOL:FORJ=1TOW:A$(I,J)="":NEXTJ,I:GOTO1720 1820 IFLEFT$(A$,1)="N"THEN1850 1830 IFLEFT$(A$,1)="M"THENHG=HG+1:GOTO2440 1840 GOTO1800 1850 W$(I)="":GOTO1950 1860 J=SY:K=SX 1870 FORP=1TOLN 1880 IFLEN(A$(J,K))ANDA$(J,K)<>MID$(W$(I),P,1)THENIFNT<=W*L*2THEN1750 1890 IFLEN(A$(J,K))ANDA$(J,K)<>MID$(W$(I),P,1)THEN1790 1900 J=J+DXY(SD,2):K=K+DXY(SD,1):NEXTP 1910 J=SY:K=SX 1920 FORP=1TOLN:A$(J,K)=MID$(W$(I),P,1) 1930 J=J+DXY(SD,2):K=K+DXY(SD,1):NEXT 1940 W(I,1)=SX:W(I,2)=SY:W(I,3)=SD 1950 NEXTI 1960 FORI=1TOL 1970 FORJ=1TOW 1980 IFA$(I,J)=""THENA$(I,J)=CHR$(FNA(26)+64) 1990 NEXT:NEXT 2000 FORI=1TOM-1:FORJ=I+1TOM 2010 IFW$(I)<=W$(J)THEN2040 2020 HZ$=W$(I):W$(I)=W$(J):W$(J)=HZ$ 2030 FORK=1TO3:HZ=W(I,K):W(I,K)=W(J,K):W(J,K)=HZ:NEXTK 2040 NEXTJ:NEXTI 2050 PRINT"HOW MANY COPIES OF THIS PUZZLE DO": PRINT " YOU WANT ? "; 2055 US$="0123456789":UL=2:GOSUB 35:N=VAL(UR$) 2057 GOTO 2075 2060 PRINT"[147] DO YOU WANT THE PUZZLE PRINTED ON THE" 2062 PRINT" SCREEN OR THE PRINTER (S/P)? "; 2065 US$="SPH":UL=1:GOSUB 35:DV$=UR$ 2066 IF DV$="S" THEN DV=3:TW=40 2067 IF DV$="P" THEN DV=4:GOSUB1190 2070 RETURN 2072 TB=(TW-LEN(XY$))/2 2075 OPENDV,DV 2100 FOR C=1 TO N:GOSUB 2105:NEXT:GOTO 2280 2105 PRINT"[147] HERE'S THE PUZZLE!" 2106 PRINT" HIT RETURN[146] TO BEGIN PRINTING." 2107 PRINT " PRESS SPACE BAR[146] TO MAKE ANOTHER PUZZLE. 2108 [153]" PRESS  M WAIT TO RETURN TO THE MENU 2109 GET A$:IF A$=CHR$(13) THEN2115: 2110 IF A$=CHR$(32)THEN800 2111 IF A$=CHR$(77)THEN2600 2114 GOTO2112 2115 PRINT"[147] OK": T=(TW-2*W)/2:PRINT#DV 2116 TB=(TW-LEN(XY$))/2 2120 PRINT#DV 2130 PRINT#DV, SPC((TW-LEN(XY$))/2);XY$ 2140 PRINT#DV, :PRINT#DV, 2150 FORJ=1TOL:PRINT#DV, SPC(T); 2160 FORK=1TOW:IFA$(J,K)="."THENPRINT#DV, ". ";:GOTO2180 2170 PRINT#DV, CHR$(ASC(A$(J,K)))" "; 2180 NEXT:PRINT#DV :NEXT 2200 PRINT#DV :PRINT#DV 2205 GOSUB830 2210 PRINT#DV, "[147] FIND THESE HIDDEN WORDS IN THE ABOVE PUZZLE:": PRINT#DV 2217 A=INT(M/2+.5) 2220 FOR J=1 TO A 2222 PRINT#DV," ";W$(J); 2224 PRINT#DV,LEFT$(BL$,TW/2-LEN(W$(J))) W$(A+J) 2250 NEXT 2255 IF DV$="S" THEN GOSUB 830 2260 RETURN 2270 : 2280 IFLEFT$(X$,1)="Y"ORLEFT$(X$,1)="[217]"THEN2300 2290 GOTO 800 2300 PRINT"[147] WAIT FOR ANSWERS" 2310 FORI=1TOL:FORJ=1TOW:A$(I,J)=".":NEXTJ,I 2320 FOR I=1 TO M 2330 LN=LEN(W$(I)): J=W(I,2): K=W(I,1) 2340 FOR P=1 TO LN 2350 A$(J,K)=MID$(W$(I),P,1) 2360 J=J+DXY(W(I,3),2):K=K+DXY(W(I,3),1):NEXT P 2370 NEXT I 2380 PRINT"HERE IS THE ANSWER KEY:" 2390 GOSUB 2110 2400 GOTO 800 2401 : 2410 PRINT"[147]" 2420 FORII=1TOL:FORJJ=1TOW:PRINT""CHR$((-(LEN(A$(II,JJ))=0)*32))+A$(II,JJ);:NEXT:PRINT:NEXT 2430 RETURN 2440 GOSUB2410:PRINT"LOCATION TO ATTEMPT" 2443 PRINT" LINE #: ";:US$="0123456789":UL=2:GOSUB35:XX=VAL(UR$) 2445 PRINT" COLUMN #: ";:US$="0123456789":UL=2:GOSUB35:YY=VAL(UR$) 2450 PRINT"DIRECTION # "; 2460 US$="0123456789":UL=1:GOSUB35:DN$=UR$ 2480 DN=ASC(DN$)-48 2490 IF DN=0 OR DN=5 THENUG$="":GOTO 1800 2500 SD=DN(DN) 2510 SX=XX:X1=SX+(LN-1)*DXY(SD,1):IFX1<1ORX1>WTHEN2450 2520 SY=YY:X1=SY+(LN-1)*DXY(SD,2):IFX1<1ORX1>LTHEN2450 2530 UP=5:UG$="":GOTO1860 2600 REM 2610 PRINT"[147] RETURNING TO THE DISK MENU. 2620 [147]"MENU",8 2630 [138] 2640 [128] 3000 [143] WHC 90:11:30